package com.max.core.shiro.listenter;

import org.apache.shiro.session.Session;
import org.apache.shiro.session.SessionListener;

import com.max.core.shiro.session.ShiroSessionRepository;

/**
 * 
 * @ClassName CustomSessionListener
 * @Description Session 会话监听
 * @author 陈新建
 * @date 2018年4月21日 下午2:36:53
 */
public class CustomSessionListener implements SessionListener {

	private ShiroSessionRepository shiroSessionRepository;

	/**
	 * 一个会话的生命周期开始，session创建时触发
	 */
	@Override
	public void onStart(Session session) {
		System.out.println("on start");
	}

	/**
	 * 一个回话的生命周期结束，session 退出/会话过期时触发
	 */
	@Override
	public void onStop(Session session) {
		System.out.println("on stop");
	}

	/**
	 * 会话过期时触发
	 */
	@Override
	public void onExpiration(Session session) {
		shiroSessionRepository.deleteSession(session.getId());
	}

	public ShiroSessionRepository getShiroSessionRepository() {
		return shiroSessionRepository;
	}

	public void setShiroSessionRepository(ShiroSessionRepository shiroSessionRepository) {
		this.shiroSessionRepository = shiroSessionRepository;
	}

}
